# def doubler(l):
#     for item in range(0,len(l)):
#         l[item] *=2
#     return l
# list_val = [1,2,3,4,5]
# print(doubler(list_val))
# print(doubler(list_val))

# def doubler(l):
#     new_list = []
#     for item in l:
#         new_list.append(item*2)
#     return new_list
#
# list_val = [1,2,3,4,5]
# print(doubler(list_val))

# map函数 map('逻辑',[列表数据])
# map函数将通过逻辑加工列表数据
list_val = [1,2,3,4,5]
# def doubler(x):
#     x *=2
#     return x
#result = map(doubler,list_val)
# 使用lambda表达式简化
# result = map(lambda x:x*2,list_val)
# print(list(result))

# filter函数 filter('逻辑',[列表数据])
# filter主要是通过逻辑过滤列表数据
# def is_odd(x):
#     return x % 2 == 1
#result = filter(is_odd,list_val)
# 使用lambda表达式简化
# result = filter(lambda x:x%2==1,list_val)
# print(list(result))

# reduce函数 reduce('逻辑'，[列表数据])
# reduce函数执行逻辑 得到一个结果（比如将列表数据相加）
from functools import reduce
def add(x,y):
    return x+y
#result = reduce(add,list_val)
result = reduce(lambda x,y:x+y,list_val)
print(result)
